package com.jvup.gameshow.model.viewModel;

import androidx.lifecycle.MutableLiveData;

import com.jvup.gameshow.BR;
import com.jvup.common.support.base.IViewModel;
import com.qire.antsbinder.viewModel.annotation.ViewModelProperty;
import com.qire.antsbinder.viewModel.annotation.ViewModelProperty.Type;

public interface IMainViewModel extends IViewModel {

    int variableId = BR.mainViewModel;

//    // 使用默认方法投递BindView的variableId,但由于默认方法的动态代理处理需要支持到android 26以上目前放弃
//    @Override
//    default int variableId(){
//        return BR.mainViewModel;
//    }


    /**
     * 更新关闭状态
     * @param state 将会广播通知的关闭状态，
     */
    @ViewModelProperty(name = "CloseState", type = Type.SET)
    void updateCloseState(boolean closeState);

    @ViewModelProperty(name = "adImgPath", type = Type.SET)
    void setAdImgPath(String adImgPath);
    @ViewModelProperty(name = "adImgPath")
    MutableLiveData<String> getAdImgPath();

    @ViewModelProperty(name = "adBtnEnable", type = Type.SET)
    void setAdBtnEnable(Boolean adBtnEnable);
    @ViewModelProperty(name = "adBtnEnable")
    MutableLiveData<Boolean> getAdBtnEnable();

    @ViewModelProperty(name = "skipBtnVisible", type = Type.SET)
    void setSkipBtnVisible(Integer skipBtnVisible);
    @ViewModelProperty(name = "skipBtnVisible")
    MutableLiveData<Integer> getSkipBtnVisible();

    @ViewModelProperty(name = "countdownText", type = Type.SET)
    void setCountdownText(CharSequence countdownText);
    @ViewModelProperty(name = "countdownText")
    MutableLiveData<CharSequence> getCountdownText();

}
